package ConnectivityEditor.Window;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import Builder.BuilderConfigurationManager;
import Command.LDrawPart;
import Common.Matrix4;
import Connectivity.Connectivity;
import Connectivity.ConnectivityTestResultT;
import Connectivity.GlobalConnectivityManager;
public class ConnectivityGroupForTransform {
private HashMap<Connectivity, Matrix4> initialTransform;
private ArrayList<Connectivity> connList;
public ConnectivityGroupForTransform() {
initialTransform = new HashMap<Connectivity, Matrix4>();
connList = new ArrayList<Connectivity>();
}
public void add(Connectivity conn) {
initialTransform.put(conn, conn.getTransformMatrix());
connList.add(conn);
}
public void remove(Connectivity part) {
initialTransform.remove(part);
connList.remove(part);
}
public void applyTransform(Connectivity conn, Matrix4 transform) {
Matrix4 newTransform = Matrix4.multiply(
Matrix4.inverse(initialTransform.get(conn)), transform);
for (Entry<Connectivity, Matrix4> entry : initialTransform.entrySet()) {
entry.getKey().setTransformMatrix(
Matrix4.multiply(entry.getValue(), newTransform));
}
for (Connectivity p : initialTransform.keySet()) {
initialTransform.put(p, p.getTransformMatrix());
}
}
public boolean contains(Connectivity part) {
return initialTransform.containsKey(part);
}
public void dispose() {
initialTransform.clear();
initialTransform = null;
}
public void clear() {
initialTransform.clear();
connList.clear();
}
public int size() {
return connList.size();
}
public ArrayList<Connectivity> getConnectivityList() {
return connList;
}
public boolean isEmpty() {
return initialTransform.isEmpty();
}
}